function pagination(pageCount) {
	var hiddenPageInput = $("input#Page"),
		pageNo = parseInt(hiddenPageInput.val()),
		maxPage = parseInt(pageCount);

	function renderNavigationBar() {
		var $wrapper = $("<div></div>").addClass("navWrapper"),
			$first = $("<div></div>").addClass("navigation first"),
			$prev = $("<div></div>").addClass("navigation prev"),
			$pages = $("<div></div>").addClass("navigation pages"),
			$next = $("<div></div>").addClass("navigation next"),
			$last = $("<div></div>").addClass("navigation last");
		if (pageNo == 1) {
			$first.addClass("disabled");
			$prev.addClass("disabled");
		}
		if (pageNo == maxPage) {
			$next.addClass("disabled");
			$last.addClass("disabled");
		}
		$wrapper.append($first);
		$wrapper.append($prev);
		$wrapper.append($pages);
		$wrapper.append($next);
		$wrapper.append($last);
		return $wrapper;
	}

	function renderPages() {
		var $pagesDiv = $("div.navigation.pages");
		$pagesDiv.append(renderPageLink(pageNo).addClass("currentPageNum"));
		if (pageNo - 1 >= 1)
			$pagesDiv.prepend(renderPageLink(pageNo - 1));
		if (pageNo + 1 <= maxPage)
			$pagesDiv.append(renderPageLink(pageNo + 1));
		if (pageNo == 1 && maxPage >= 3)
			$pagesDiv.append(renderPageLink(3));
		if (pageNo == maxPage && maxPage >= 3)
			$pagesDiv.prepend(renderPageLink(pageNo - 2));
		if (pageNo >= 3)
			$pagesDiv.prepend(" ... ");
		if (pageNo <= maxPage - 2)
			$pagesDiv.append(" ... ");
		if (pageNo >= 3)
			$pagesDiv.prepend(renderPageLink(1));
		if (pageNo <= maxPage - 2)
			$pagesDiv.append(renderPageLink(maxPage));
	};

	function renderPageLink(number) {
		var $elem = $("<span></span>").addClass("pageNum").text(number);
		return $elem;
	};

	$("div.navigationButtons").append(renderNavigationBar);
	renderPages();

	$("div.navigation.first").click(function () {
		if (!$(this).hasClass("disabled") && hiddenPageInput.val() > 1) {
			hiddenPageInput.val(1);
			$(this).closest("form").submit();
		}
	});

	$("div.navigation.prev").click(function () {
		if (!$(this).hasClass("disabled") && hiddenPageInput.val() > 1) {
			hiddenPageInput.val(pageNo - 1);
			$(this).closest("form").submit();
		}
	});

	$("div.navigation.next").click(function () {
		if (!$(this).hasClass("disabled") && hiddenPageInput.val() < maxPage) {
			hiddenPageInput.val(pageNo + 1);
			$(this).closest("form").submit();
		}
	});

	$("div.navigation.last").click(function () {
		if (!$(this).hasClass("disabled") && hiddenPageInput.val() < maxPage) {
			hiddenPageInput.val(maxPage);
			$(this).closest("form").submit();
		}
	});

	$("span.pageNum:not(.currentPageNum)").click(function () {
		if (!$(this).hasClass("disabled")) {
			var pageNum = parseInt($(this).text());
			hiddenPageInput.val(pageNum);
			$(this).closest("form").submit();
		}
	});
}